package com.zh.risk.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zh.risk.entity.RiskMerchTrans;
import com.zh.risk.entity.RiskMySQL;
import com.zh.risk.entity.Strategy;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;


/**
 * code is far away from bug with the animal protecting
 * ┏┓　　　┏┓
 * ┏┛┻━━━┛┻┓
 * ┃　　　　　　　┃
 * ┃　　　━　　　┃
 * ┃　┳┛　┗┳　┃
 * ┃　　　　　　　┃
 * ┃　　　┻　　　┃
 * ┃　　　　　　　┃
 * ┗━┓　　　┏━┛
 * 　　┃　　　┃神兽保佑
 * 　　┃　　　┃代码无BUG！
 * 　　┃　　　┗━━━┓
 * 　　┃　　　　　　　┣┓
 * 　　┃　　　　　　　┏┛
 * 　　┗┓┓┏━┳┓┏┛
 * 　　　┃┫┫　┃┫┫
 * 　　　┗┻┛　┗┻┛
 *
 * @Description: 风控策略接口
 * @Author: Li.HuiNeng
 * @Create in: 2020-07-21 14:01
 * @Version: 1.0.1
 */
@Repository
public interface StrategyDao extends BaseMapper<Strategy> {

    // 获取已绑定规则集
    List<RiskMerchTrans> getBindRulers(@Param("id")String id);

    // 获取未绑定规则集
    List<RiskMerchTrans> getNotBindRulers(@Param("id")String id);

    // 删除已绑定的规则集
    int delRules(@Param("strategyId")String strategyId);
    // 绑定规则集与策略
    int bindRuleStrategy(@Param("list")List<String> ruleIds,@Param("strategyId")String strategyId);

    //获取商户类型,根据自定义sql
    int getMerchTypeBySQL(RiskMySQL mySQL);

    //获取商户类型
    int getMerchType(String merchno);

    //根据商户号和金额，获取当前一分钟是否有相同的支付金额
    int repeatOrders(String merchno,String amount);

    //获取今天商户交易的总数
    int getQrcodeOrderNum(String merchno);

    //相同交易金额连续笔数限制，根据条件获取今天最新的多少笔
     List<Double> getQrcodeOrderAmount(RiskMySQL mySQL);

    //查询今天23点后的数据
    List<Double> getToDayLast(String merchno);

    //查询今日00到6点的数据
    List<Double> getToDaySix(String merchno);

    //到达次日，则查询前一天的23点后的数据,查询qrcode_order_history历史表
    List<Double> getToDayLastByHistory(String merchno);

    //获取商户每天交易的总金额，历史交易
    List<Double> getEveryDayAmount(String merchno);

    //获取今天交易的总金额
    List<Double> getToDayAmount(String merchno);

    //获取商户前3天的交易总金额
    List<Double> getLastThereDayAmount(String merchno);

    //获取商户前2天的交易总金额
    List<Double> getLastTwoDayAmount(String merchno);

    // 获取商户上一笔的交易ip地址
    Map<String,Object> getLastIP(String merchno);
}
